In high-speed packet communications networks, several classes of traffic share the common resources of the network. For example, interactive video presents both delay and loss sensitive traffic while voice presents delay sensitive but loss tolerant traffic. File transfers present loss sensitive but delay tolerant traffic, while datagram service provide traffic which is both delay tolerant and loss tolerant traffic. The first two types of traffic (interactive video and voice) are generally referred to as reserved services since an end-to-end connection must be in place before the user traffic can be launched on the network. The last two types of traffic (file transfer and datagrams), on the other hand, are non-reserved services since they can be launched on the network with no fixed route reserved, but which find their way through the network one link at a time based on local availability. Non-reserved serves, often called "best efforts" services, are bursty, delay tolerant and require no explicit quality of service guarantee.
Best effort services are extremely useful in maximizing the utilization of the network resources, much beyond the utilization level possible with reserved traffic alone. However, when both reserved and non-reserved traffic are integrated on a single network, it is necessary to ensure that he best effort traffic does not cause degradation of the reserved services traffic. One solution to this problem is provided by a separate link buffer by the two classes of traffic, and transmitting best effort traffic only when there is no reserve traffic waiting to be transmitted. from the local node onto that link. This arrangement makes the effect of the best effort traffic on the reserve traffic negligible. Typically, a reserved traffic packet would at most wait for the transmission of a single best effort packet. If a link is very slow, a preemptive priority can be assigned to the reserved traffic to eliminate even such a minimum single best effort packet delay. If no control is applied to the best effort service, the amount of traffic served approaches the maximum available network capacity, but at the price of creating congestion at the buffers of the network. If congestion causes the loss of transmitted traffic, then it is necessary to retransmit the lost packet, reducing the network utilization.
It is therefore clear that congestion control and congestion avoidance are essential to orderly network management, particularly as the demands generated from best effort traffic approach or exceed the available capacity of the network. One method of congestion control relies on the periodic transmission of time-stamped sampling packets through the network on a selected route and then processing of the selectivity received samples to determine the state of congestion on that route. The difference in the transit time intervals between successive sampling packets provides an indication of the network congestion. When this delay information exceeds a threshold value, the destination returns a value in a sampling packet that indicates to the sending stations that a state of congestion exists on the network. Otherwise, the return sampling packet indicates a state of no congestion. Thus, the information the source station receives in order to adapt to network conditions is coarse grained. The sending station is either told that the network is congested, or that the network has no congestion. Based on this coarse grained signal, the sending station makes decisions with respect to the modification of its data rate.
The source station modifies its data rate through a collection of increase or decrease fractions. The values of fractional increase or decrease thresholds are set by system administrators and generally do not carry over from one network to another. Furthermore, the congestion management decisions are based on the present flow to estimate next flow. However, accounting for flow inertia, which can have the effect of smoothing the coarse grained congestion indications, can improve performance of adaptive flow control methods. Thus, there is a need in the art for a method and apparatus that uses both present and previous flows to compute next flows, in order to reduce losses and increases throughput.